package example;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * hashmap用的最多 是主要实现类
 * key是用set存放的，添加元素时，会调用key所在类的equals方法
 * 添加的元素，key相同，旧的值被覆盖
 */
public class HashMapTest {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("1", "a");
        map.put("2", "b");
        map.put("3", "cc");
        map.put("4", "d");
        map.put("5", "r");
        map.put("6", "e");
        map.put("7", "vefvf");
        map.put("8", "mbvc");

        //key的集合 返回set
        Set<String> set = map.keySet();

        //value的集合 返回是 Collection
        Collection<String> values = map.values();

        Set<Map.Entry<String, String>> entrySet = map.entrySet();
        for (Map.Entry<String, String> entry : entrySet) {
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(entry);
        }

        //判断键是否存在
        System.out.println(map.containsKey("1"));
        //判断值是否存在（value重写equals方法）
        System.out.println(map.containsValue("b"));
        //取值 没有此key返回null
        System.out.println(map.get("1"));
        //按照key删除，返回key对应的value
        System.out.println(map.remove("3"));
    }
}







